TARGET=SaiGo
CC = g++
#CC = x86_64-w64-mingw32-g++
OPTIMIZE = -O3
CPP11 = -std=c++11
WARNING = -Wall
DEBUG = -g
CFLAGS = ${OPTIMIZE} ${WARNING} ${CPP11} ${DEBUG}
LIBS = -lm -pthread #-static-libstdc++ -static-libgcc
RM = rm

SRCS=${shell ls SaiGo/*.cpp}
HEDS=${shell ls SaiGo/*.h}
OBJS=${SRCS:.cpp=.o}

.SUFFIXES:.cpp .o .h

.PHONY: all
all : ${TARGET}

${TARGET} : ${OBJS}
	${CC} ${CFLAGS} -o $@ ${OBJS} ${LIBS}

.cpp.o:
	${CC} ${CFLAGS} -c $< -o $@

.PHONY: clean

clean:
	${RM} -f ${TARGET} SaiGo/*~ SaiGo/*.o *~

SaiGo/Command.o: SaiGo/Command.cpp SaiGo/Command.h SaiGo/DynamicKomi.h SaiGo/GoBoard.h \
 SaiGo/Pattern.h SaiGo/UctSearch.h SaiGo/ZobristHash.h
SaiGo/Command.o: SaiGo/Command.h
SaiGo/DynamicKomi.o: SaiGo/DynamicKomi.cpp SaiGo/DynamicKomi.h SaiGo/GoBoard.h \
 SaiGo/Pattern.h SaiGo/UctSearch.h SaiGo/ZobristHash.h
SaiGo/DynamicKomi.o: SaiGo/DynamicKomi.h SaiGo/GoBoard.h SaiGo/Pattern.h \
 SaiGo/UctSearch.h SaiGo/ZobristHash.h
SaiGo/GoBoard.o: SaiGo/GoBoard.cpp SaiGo/GoBoard.h SaiGo/Pattern.h SaiGo/UctRating.h \
 SaiGo/PatternHash.h SaiGo/ZobristHash.h
SaiGo/GoBoard.o: SaiGo/GoBoard.h SaiGo/Pattern.h
SaiGo/Gtp.o: SaiGo/Gtp.cpp SaiGo/DynamicKomi.h SaiGo/GoBoard.h SaiGo/Pattern.h \
 SaiGo/UctSearch.h SaiGo/ZobristHash.h SaiGo/Gtp.h SaiGo/Nakade.h SaiGo/UctRating.h \
 SaiGo/PatternHash.h SaiGo/Message.h SaiGo/Point.h SaiGo/Rating.h \
 SaiGo/Simulation.h
SaiGo/Gtp.o: SaiGo/Gtp.h
SaiGo/Ladder.o: SaiGo/Ladder.cpp SaiGo/Message.h SaiGo/GoBoard.h SaiGo/Pattern.h \
 SaiGo/UctSearch.h SaiGo/ZobristHash.h SaiGo/Ladder.h SaiGo/Point.h
SaiGo/Ladder.o: SaiGo/Ladder.h SaiGo/GoBoard.h SaiGo/Pattern.h
SaiGo/Message.o: SaiGo/Message.cpp SaiGo/Message.h SaiGo/GoBoard.h SaiGo/Pattern.h \
 SaiGo/UctSearch.h SaiGo/ZobristHash.h SaiGo/Point.h
SaiGo/Message.o: SaiGo/Message.h SaiGo/GoBoard.h SaiGo/Pattern.h SaiGo/UctSearch.h \
 SaiGo/ZobristHash.h
SaiGo/Nakade.o: SaiGo/Nakade.cpp SaiGo/Message.h SaiGo/GoBoard.h SaiGo/Pattern.h \
 SaiGo/UctSearch.h SaiGo/ZobristHash.h SaiGo/Nakade.h SaiGo/Point.h
SaiGo/Nakade.o: SaiGo/Nakade.h SaiGo/ZobristHash.h SaiGo/GoBoard.h SaiGo/Pattern.h
SaiGo/Pattern.o: SaiGo/Pattern.cpp SaiGo/GoBoard.h SaiGo/Pattern.h
SaiGo/Pattern.o: SaiGo/Pattern.h
SaiGo/PatternHash.o: SaiGo/PatternHash.cpp SaiGo/PatternHash.h SaiGo/GoBoard.h \
 SaiGo/Pattern.h
SaiGo/PatternHash.o: SaiGo/PatternHash.h SaiGo/GoBoard.h SaiGo/Pattern.h
SaiGo/Point.o: SaiGo/Point.cpp SaiGo/GoBoard.h SaiGo/Pattern.h SaiGo/Point.h
SaiGo/Point.o: SaiGo/Point.h
SaiGo/Rating.o: SaiGo/Rating.cpp SaiGo/Message.h SaiGo/GoBoard.h SaiGo/Pattern.h \
 SaiGo/UctSearch.h SaiGo/ZobristHash.h SaiGo/Nakade.h SaiGo/Point.h SaiGo/Rating.h \
 SaiGo/UctRating.h SaiGo/PatternHash.h SaiGo/Semeai.h SaiGo/Utility.h
SaiGo/Rating.o: SaiGo/Rating.h SaiGo/GoBoard.h SaiGo/Pattern.h SaiGo/UctRating.h \
 SaiGo/PatternHash.h
SaiGo/RayMain.o: SaiGo/RayMain.cpp SaiGo/Command.h SaiGo/GoBoard.h SaiGo/Pattern.h \
 SaiGo/Gtp.h SaiGo/PatternHash.h SaiGo/Rating.h SaiGo/UctRating.h SaiGo/Semeai.h \
 SaiGo/UctSearch.h SaiGo/ZobristHash.h
SaiGo/Semeai.o: SaiGo/Semeai.cpp SaiGo/GoBoard.h SaiGo/Pattern.h SaiGo/Message.h \
 SaiGo/UctSearch.h SaiGo/ZobristHash.h SaiGo/Point.h SaiGo/Semeai.h \
 SaiGo/UctRating.h SaiGo/PatternHash.h
SaiGo/Semeai.o: SaiGo/Semeai.h SaiGo/GoBoard.h SaiGo/Pattern.h
SaiGo/Simulation.o: SaiGo/Simulation.cpp SaiGo/GoBoard.h SaiGo/Pattern.h \
 SaiGo/Message.h SaiGo/UctSearch.h SaiGo/ZobristHash.h SaiGo/Point.h SaiGo/Rating.h \
 SaiGo/UctRating.h SaiGo/PatternHash.h SaiGo/Simulation.h
SaiGo/Simulation.o: SaiGo/Simulation.h SaiGo/GoBoard.h SaiGo/Pattern.h \
 SaiGo/UctSearch.h SaiGo/ZobristHash.h
SaiGo/UctRating.o: SaiGo/UctRating.cpp SaiGo/Ladder.h SaiGo/GoBoard.h SaiGo/Pattern.h \
 SaiGo/Message.h SaiGo/UctSearch.h SaiGo/ZobristHash.h SaiGo/Nakade.h \
 SaiGo/PatternHash.h SaiGo/Point.h SaiGo/Semeai.h SaiGo/Utility.h SaiGo/UctRating.h
SaiGo/UctRating.o: SaiGo/UctRating.h SaiGo/GoBoard.h SaiGo/Pattern.h \
 SaiGo/PatternHash.h
SaiGo/UctSearch.o: SaiGo/UctSearch.cpp SaiGo/DynamicKomi.h SaiGo/GoBoard.h \
 SaiGo/Pattern.h SaiGo/UctSearch.h SaiGo/ZobristHash.h SaiGo/Ladder.h \
 SaiGo/Message.h SaiGo/PatternHash.h SaiGo/Simulation.h SaiGo/UctRating.h \
 SaiGo/Utility.h
SaiGo/UctSearch.o: SaiGo/UctSearch.h SaiGo/GoBoard.h SaiGo/Pattern.h \
 SaiGo/ZobristHash.h
SaiGo/Utility.o: SaiGo/Utility.cpp SaiGo/Utility.h
SaiGo/Utility.o: SaiGo/Utility.h
SaiGo/ZobristHash.o: SaiGo/ZobristHash.cpp SaiGo/Nakade.h SaiGo/ZobristHash.h \
 SaiGo/GoBoard.h SaiGo/Pattern.h
SaiGo/ZobristHash.o: SaiGo/ZobristHash.h SaiGo/GoBoard.h SaiGo/Pattern.h
